package com.sugon.dao;
import com.sugon.entity.EquipmentRepairPersonEntity;
import com.sugon.entity.MaintainPlanChangeEntity;
import com.sugon.entity.MaintainPlanEntity;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 维护计划Dao
 *
 * @author sugon
 * @date 2019-08-07 14:02:42
 */
public interface MaintainPlanDao extends BaseDao<MaintainPlanEntity> {
    /**
     * 创建维护计划
     *
     * @param maintainPlanEntity
     * @return
     */
    Integer insertMaintain(MaintainPlanEntity maintainPlanEntity);
    /**
     * 插入维护计划规程关联
     *
     * @param list
     * @return
     */
    Integer insertDevPlanOption(List list);
    /**
     * 条件查询模具维护计划
     * @param map 查询条件
     * @return
     */
    List<Map<String, Object>> selectModulMaintian(HashMap<String, Object> map);
    /**
     * 更新维护计划review
     * @param id 维护计划ID
     * @param review review项
     * @return
     */
    Integer updatePlanReview(@Param("id") String id, @Param("review") String review);
    /**
     * selectSysUserDeptPerson
     * @param deptId 部门ID
     * @return
     */
    List<Map<String,Object>> selectSysUserDeptPerson(@Param("deptId") String deptId);
    /**
     * 更新维护计划执行
     * @param maintainPlanEntity 维护计划
     * @return
     */
    Integer updateExecutive(MaintainPlanEntity maintainPlanEntity);
    /**
     * 新增辅修技术人员
     * @param list
     * @return
     */
    Integer inAuxiliaryPlan(@Param("list") List<EquipmentRepairPersonEntity> list);
    /**
     * 删除计划人数
     * @param list
     * @return
     */
    Integer delPlanPerson(List list);
    /**
     * 所有啥方法
     * @param id
     * @return
     */
    List<Map<String,Object>> allDevPlan(@Param("id") String id);
    /**
     * 更新开始日时
     * @param id
     * @return
     */
    Integer upStartDate(@Param("id") String id);
    /**
     * 插入维护计划
     * @param id
     * @param rId
     * @param pId
     * @param carriedDate
     * @param carriedName
     * @return
     */
    Integer insertRecord(@Param("id") String id,@Param("rId") String rId,@Param("pId") String pId,@Param("carriedDate") String carriedDate,@Param("carriedName") String carriedName);
    /**
     * 插入维护计划
     * @param changeEntity
     * @return
     */
    Integer insertPlanChange(MaintainPlanChangeEntity changeEntity);
    /**
     * 统计维护计划变动
     * @param id
     * @return
     */
    Integer countPlanChange(@Param("id") String id);
    /**
     * reviewPlanChange
     * @return
     */
    List<MaintainPlanChangeEntity> reviewPlanChange();
    /**
     * turnDownPlanChange
     * @param changeEntity
     * @return
     */
    Integer turnDownPlanChange(MaintainPlanChangeEntity changeEntity);
    /**
     *
     * @param id
     * @return
     */
    Integer delPlan(@Param("id") String id);
    /**
     *
     * @param id
     * @return
     */
    Integer delRecord(@Param("id")String id);
    /**
     * delChange
     * @param id
     * @param pid
     * @return
     */
    Integer delChange(@Param("id")String id,@Param("pid") String pid);
    /**
     * upPlanExecutive
     * @param id
     * @return
     */
    Integer upPlanExecutive(@Param("id") String id);
    /**
     * endPlan
     * @param id
     * @return
     */
    Integer endPlan(@Param("id") String id);
    /**
     * countError
     * @param id
     * @return
     */
    Integer countError(@Param("id") String id);
    /**
     * upRecord
     * @param id
     * @return
     */
    Integer upRecord(@Param("id") String id);
    /**
     * 审批通过维护几乎
     * @param maintainPlanEntity
     * @return
     */
    int apply(MaintainPlanEntity maintainPlanEntity);
    /**
     * 条件查询维护计划列表
     * @param map 查询条件
     * @return
     */
    List<Map<String,Object>> getDetailsInfo(Map<String, Object> map);
    /**
     * 条件查询维护计划总数
     * @param map 查询条件
     * @return
     */
    int queryDetailsTotal(Map<String, Object> map);
    /**
     * 获取未结束的维护计划
     * @return
     */
    List<MaintainPlanEntity> getNotEndPlan();
}
